<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
  <meta charset="utf-8" />
  <meta name="generator" content="pandoc" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
  <title>README</title>
  <style>
    code{white-space: pre-wrap;}
    span.smallcaps{font-variant: small-caps;}
    div.columns{display: flex; gap: min(4vw, 1.5em);}
    div.column{flex: auto; overflow-x: auto;}
    div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
    /* The extra [class] is a hack that increases specificity enough to
       override a similar rule in reveal.js */
    ul.task-list[class]{list-style: none;}
    ul.task-list li input[type="checkbox"] {
      font-size: inherit;
      width: 0.8em;
      margin: 0 0.8em 0.2em -1.6em;
      vertical-align: middle;
    }
    .display.math{display: block; text-align: center; margin: 0.5rem auto;}
  </style>
  <link rel="stylesheet" href="../../../../../_htmresc/mini-st_2020.css" />
</head>
<body>
<div class="row">
<section id="mrsubg_wmbusstd_rx-example-description"
class="col-sm-12 col-lg-4">
<h2><b>MRSUBG_WMBusSTD_Rx Example Description</b></h2>
<p>This is a demo implementation of the standard WMBUS protocol. It
takes in account the physical and data link layers defined by the
standard. The example shows how to configure the packets in order to
transmit or receive MBUS packets (format A only).</p>
<p>The data-link layer all the fields defined by the protocol are
inserted into the payload of the packets and the CRC blocks computation
is managed by firmware.<br />
Moreover, on the RX side the algorithm uses the L-field of the wM-BUS
packet to correctly stop the reception making use of the Databuffer
threshold IRQs.</p>
<p>The radio configuration according to the standards has to be totally
managed by the user.</p>
<p>A Virtual Com stream is open. Both the transmitter and the receiver
will write their encrypted and decrypted buffers on video every time a
Tx or an Rx is performed.</p>
<h3 id="keywords"><b>Keywords</b></h3>
<p>MRSUBG, radio</p>
<h3 id="directory-contents"><b>Directory contents</b></h3>
<ul>
<li>MRSUBG/MRSUBG_WMBusSTD_Rx/Inc/stm32wl3x_nucleo_conf.h BSP
configuration file</li>
<li>MRSUBG/MRSUBG_WMBusSTD_Rx/Inc/stm32wl3x_hal_conf.h HAL Configuration
file</li>
<li>MRSUBG/MRSUBG_WMBusSTD_Rx/Inc/stm32wl3x_it.h Header for
stm32wl3x_it.c</li>
<li>MRSUBG/MRSUBG_WMBusSTD_Rx/Inc/main.h Header file for main.c</li>
<li>MRSUBG/MRSUBG_WMBusSTD_Rx/Inc/stm32_assert.h Assert description
file</li>
<li>MRSUBG/MRSUBG_WMBusSTD_Rx/Src/system_stm32wl3x.c STM32WL3x system
clock configuration file</li>
<li>MRSUBG/MRSUBG_WMBusSTD_Rx/Src/stm32wl3x_it.c Interrupt handlers</li>
<li>MRSUBG/MRSUBG_WMBusSTD_Rx/Src/stm32wl3x_hal_msp.c HAL MSP
module</li>
<li>MRSUBG/MRSUBG_WMBusSTD_Rx/Src/main.c Main program</li>
</ul>
<h3 id="hardware-and-software-environment"><b>Hardware and Software
environment</b></h3>
<ul>
<li><p>This example runs on NUCLEO-WL33CC1 application board.</p></li>
<li><p>This example has been tested with STMicroelectronics
NUCLEO-WL33CC1 application board and can be easily tailored to any other
supported device and development board.</p></li>
</ul>
<h3 id="how-to-use-it"><b>How to use it ?</b></h3>
<p>In order to make the program work, you must do the following :</p>
<ul>
<li>Open your preferred toolchain and import the .c files in your
workspace</li>
<li>Rebuild all files and load your image into target memory</li>
<li>Run the example</li>
</ul>
</section>
</div>
</body>
</html>
